草庐IT

MySQL ORDER BY 多列 ASC 和 DESC

全部标签

sql - MySQL Order by multiple column combined (not order by field1 asc, field2 asc)

这似乎是一个典型的问题,但它是不同的。我有一个带有id和3个时间戳字段的表(简单来说)。最初所有3个字段都是空的,并且它们被值填充。行的例子是:idtime1time2time3112596256611259643563null2null1259621231null31259625889null12596445114null1259621231null5nullnull12596445116null1259621231null71259625889nullnull我需要的是获取按最近时间戳排序的ID列表(忽略时间1、时间2或时间3)。按time1desc、time2desc、time3

php - MySQL 更新多列问题

这似乎是一个非常简单的查询,但不知何故我总是收到错误...基本上,我只是从一个用户那里得到了一堆信息,现在我要在一个查询中更新他们在users表中的记录:UPDATEusersSETtimezone='America/New_York',SETupdates='NO',SET已验证='YES'WHEREid='1'但是,运行之后,我得到以下错误:“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,了解在‘SETupdates='NO',SETverified附近使用的正确语法>='YES'WHEREid='1''在第1行。非常感谢任何帮助。

php - MySQL: "You have an error in your SQL syntax... near ' desc) 值 ('Idea' ,'Description' )'"

这个问题在这里已经有了答案:SyntaxerrorduetousingareservedwordasatableorcolumnnameinMySQL(1个回答)关闭8年前。我正在尝试让MySQL为我的表单提交工作。我在尝试插入表格时遇到问题。当我将信息放入我的表单并单击提交时(在本例中,一个字段中的信息是“想法”,另一个字段中的信息是“描述”),我得到了这样的回复:"YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'

MySQL - Group by 和 Order by DESC

表:uuid、版本、日期时间version不是唯一的,但想法是只获取给定uuid具有最新日期时间的行SELECT*FROMtableWHEREuuid='bla'GROUPBYversionORDERBYdatetimedesc...当然会得到datetimeasc结果——有没有办法“预排序”groupbytodesc,以便只获取最新版本? 最佳答案 由于该表只有这3个字段,并且您正在按uid进行过滤,因此您可以只使用MAX而无需JOIN:SELECTversion,MAX(datetime)MaxdatetimeFROMtable

mysql - 如何跟踪数据库表中多列的变化以进行审计?

此问题已在SO上多次回答:here,here和外部链接here和here.我了解上述线程中描述的方法,我打算使用this方法。但我对实现它几乎没有基本的怀疑。在我的例子中,一行中的多个列可以同时更新,因此遵循正确的实现方式:找出操作类型(INSERT/UPDATE/DELETE)找出正在更新的列更新前阅读整行在Audit表中为每一列使用旧值和新值(以及其他详细信息)进行更改插入一行更新表格 最佳答案 假设您使用的是足够新的mySQL版本,我会使用triggers,个人。假设它们或多或少像我在其他产品(例如Oracle)中熟悉的那些一

Mysql CASE语句多列

我有兴趣制作一个case语句,从两个不同的列中提取值,其中一个列涉及计算。我不确定如何进行这项工作,但我会向您展示目前的情况.(我有一列显示项目类型,例如特殊订单项目、停产项目和通常有库存的项目。第二列显示现有数量-销售订单上的数量以确定该项目是否有库存。)这是我的查询SELECTItemID,ItemType,(QuantityOnHand-QuantityonSalesOrders)ASInstockCASEWHENItemType='SP/OR'THEN'SpecialOrder'WHENInstock'0'THEN'InStock'AS"Stock"FROMpeachtree;

php - MYSQL 选择最后 3 行,按 ASC 排序

我只想选择帖子中最新的3条评论,并按ASC顺序对它们进行排序。这会选择最后3行,但我需要它们的顺序相反:mysql_query("SELECT*FROMcommentsWHEREpostID='$id'ANDstate='0'ORDERBYidDESCLIMIT3") 最佳答案 您可以稍后对其进行反向排序。SELECT*FROM(SELECT*FROMcommentsWHEREpostID='$id'ANDstate='0'ORDERBYidDESCLIMIT3)tORDERBYidASC;

mysql - 语法错误创建具有名为 'desc' 的列的表

我似乎永远无法用TEXT类型的列创建MySQL表。这是我的MySQL:CREATETABLEfactions(idINTNOTNULLAUTO_INCREMENT,PRIMARYKEY(id),nameVARCHAR(16)NOTNULL,descTEXTNOTNULL,adminsTEXTNOTNULL,modsTEXT,membersTEXT,landTEXT,enemiesTEXT,alliesTEXT)当它运行时,我得到这个:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverv

php - 无法在 mysql 中使用列名 "desc"

INSERTINTOmovie(id,title,desc,released,views,featured)VALUES('','title','\r\ndescription\r\n','2006-12-12','0','0')错误是1064-YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'desc,released,views,featured)VALUES('','title','\r\ndescription

基于 MySQL 游标的多列分页

我有一些表,我想使用基于游标的分页来查询,但它需要申请多个列。让我们举一个使用2列的简化示例-我像这样获取第一页:SELECTcolumn_1,column_2FROMtable_nameORDERBYcolumn_1,column_2LIMIT10得到结果后,我可以根据最后一行获取下一页。假设最后一行是column_1=5,column_2=8。我想做这样的事情:SELECTcolumn_1,column_2FROMtable_nameWHEREcolumn_1>5ANDcolumn_2>8ORDERBYcolumn_1,column_2LIMIT10但这显然是错误的。它会过滤掉具有